\hypertarget{classIEmbeddingEngine}{
\section{\-I\-Embedding\-Engine \-Class \-Reference}
\label{classIEmbeddingEngine}\index{\-I\-Embedding\-Engine@{\-I\-Embedding\-Engine}}
}


\-Embedding engine base class.  




{\ttfamily \#include $<$embedding\-\_\-engine.\-h$>$}

\-Inheritance diagram for \-I\-Embedding\-Engine\-:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=1.647059cm]{classIEmbeddingEngine}
\end{center}
\end{figure}
\subsection*{\-Public \-Member \-Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classIEmbeddingEngine_adc2c704198f68e2d23a713f058122f34}{\-I\-Embedding\-Engine} ()
\item 
virtual \hyperlink{classIEmbeddingEngine_a34cd1e82cd29a489109593e8f7ff3be4}{$\sim$\-I\-Embedding\-Engine} ()
\item 
virtual void \hyperlink{classIEmbeddingEngine_abfb86e00c511112aec0cfa1acfb571c8}{set\-Properties\-Reader} (\hyperlink{properties__reader_8h_a67847fd00cb49d80dd45f61722eb9a43}{\-C\-Properties\-Reader} $\ast$p\-Properties\-Reader)
\item 
virtual \hyperlink{properties__reader_8h_a67847fd00cb49d80dd45f61722eb9a43}{\-C\-Properties\-Reader} $\ast$ \hyperlink{classIEmbeddingEngine_a72cad808a0f21ab863dd3e4eda653374}{get\-Properties\-Reader} () const 
\item 
virtual std\-::string \hyperlink{classIEmbeddingEngine_a58c6fd3df13135b91956c42b2f3519a6}{get\-Ini\-Section\-Name} () const =0
\begin{DoxyCompactList}\small\item\em get the abbreviation for the properties reader \end{DoxyCompactList}\item 
virtual int \hyperlink{classIEmbeddingEngine_a0d4c7dd4a9cef7524a016831042094fe}{embed\-Into\-Samples} (int8\-\_\-t $\ast$p\-Samples, unsigned int p\-Count, unsigned int p\-Leak)=0
\begin{DoxyCompactList}\small\item\em hook call for glue code \end{DoxyCompactList}\item 
virtual int \hyperlink{classIEmbeddingEngine_a508ca9bd6283cd40250a3cbee9a79778}{embed\-Into\-Samples} (uint8\-\_\-t $\ast$p\-Samples, unsigned int p\-Count, unsigned int p\-Leak)=0
\item 
virtual int \hyperlink{classIEmbeddingEngine_aab1d65b5129a308098acab5468e51e3f}{embed\-Into\-Samples} (int16\-\_\-t $\ast$p\-Samples, unsigned int p\-Count, unsigned int p\-Leak)=0
\item 
virtual int \hyperlink{classIEmbeddingEngine_a12b321a2caf8b08d4435e936bd7fa446}{embed\-Into\-Samples} (uint16\-\_\-t $\ast$p\-Samples, unsigned int p\-Count, unsigned int p\-Leak)=0
\item 
virtual int \hyperlink{classIEmbeddingEngine_aa778b0012f0b6d907c7284ce367d16ee}{embed\-Into\-Samples} (double $\ast$p\-Samples, unsigned int p\-Count, unsigned int p\-Leak)=0
\item 
virtual int \hyperlink{classIEmbeddingEngine_afdd4eb903fce7b7ec14ed171c0df64d7}{extract\-From\-Samples} (int8\-\_\-t $\ast$p\-Samples, unsigned int p\-Count, unsigned int p\-Leak, unsigned int p\-In\-Buffer)=0
\begin{DoxyCompactList}\small\item\em hook call for glue code \end{DoxyCompactList}\item 
virtual int \hyperlink{classIEmbeddingEngine_a952b08b4f543a8bdd3ca53e46c16b087}{extract\-From\-Samples} (uint8\-\_\-t $\ast$p\-Samples, unsigned int p\-Count, unsigned int p\-Leak, unsigned int p\-In\-Buffer)=0
\item 
virtual int \hyperlink{classIEmbeddingEngine_a476e58ee9839c3d29cf308b056d2b0d3}{extract\-From\-Samples} (int16\-\_\-t $\ast$p\-Samples, unsigned int p\-Count, unsigned int p\-Leak, unsigned int p\-In\-Buffer)=0
\item 
virtual int \hyperlink{classIEmbeddingEngine_af077ceeacbe720f5b588950c4140a096}{extract\-From\-Samples} (uint16\-\_\-t $\ast$p\-Samples, unsigned int p\-Count, unsigned int p\-Leak, unsigned int p\-In\-Buffer)=0
\item 
virtual int \hyperlink{classIEmbeddingEngine_a5d7b877de16fb5e8479ce83f75b88ae1}{extract\-From\-Samples} (double $\ast$p\-Samples, unsigned int p\-Count, unsigned int p\-Leak, unsigned int p\-In\-Buffer)=0
\item 
virtual void \hyperlink{classIEmbeddingEngine_a17d63e5e13b91c9121444833cf5de626}{shutdown} ()=0
\item 
virtual int \hyperlink{classIEmbeddingEngine_acfc1adf5ae7e28332f825c6f2ae056d2}{change\-Settings} ()=0
\item 
virtual int \hyperlink{classIEmbeddingEngine_aaeb36f7905d85f9df65b7ba565419888}{get\-Num\-Required\-Samples} ()=0
\begin{DoxyCompactList}\small\item\em determine number of processible samples \end{DoxyCompactList}\item 
virtual \*
\hyperlink{namespaceNAudioFormats_a0f5b4d2b68d4ba2b34bac333d4f5f808}{\-N\-Audio\-Formats\-::\-E\-Samples\-Format} \hyperlink{classIEmbeddingEngine_af1afa2bc32d63b5505a27da584c4a474}{get\-Samples\-Format} ()=0
\begin{DoxyCompactList}\small\item\em determine whether samples should be converted to double before handed over to an embedding engine \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{\-Protected \-Attributes}
\begin{DoxyCompactItemize}
\item 
\hyperlink{properties__reader_8h_a67847fd00cb49d80dd45f61722eb9a43}{\-C\-Properties\-Reader} $\ast$ \hyperlink{classIEmbeddingEngine_a7da6f0fa30423edc18aa7beafa47801a}{m\-Properties\-Reader}
\end{DoxyCompactItemize}
\subsection*{\-Private \-Member \-Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classIEmbeddingEngine_ae4167c2ac833d919fe202f0ce72f6367}{\-I\-Embedding\-Engine} (const \hyperlink{classIEmbeddingEngine}{\-I\-Embedding\-Engine} \&)
\item 
\hyperlink{classIEmbeddingEngine}{\-I\-Embedding\-Engine} \& \hyperlink{classIEmbeddingEngine_ab1a0ad555daf0b82027ef6c3aba980d9}{operator=} (const \hyperlink{classIEmbeddingEngine}{\-I\-Embedding\-Engine} \&)
\end{DoxyCompactItemize}


\subsection{\-Detailed \-Description}
\-Embedding engine base class. 

\begin{DoxyAuthor}{\-Author}
gpitsch and rpoisel 
\end{DoxyAuthor}


\subsection{\-Constructor \& \-Destructor \-Documentation}
\hypertarget{classIEmbeddingEngine_adc2c704198f68e2d23a713f058122f34}{
\index{\-I\-Embedding\-Engine@{\-I\-Embedding\-Engine}!\-I\-Embedding\-Engine@{\-I\-Embedding\-Engine}}
\index{\-I\-Embedding\-Engine@{\-I\-Embedding\-Engine}!IEmbeddingEngine@{\-I\-Embedding\-Engine}}
\subsubsection[{\-I\-Embedding\-Engine}]{\setlength{\rightskip}{0pt plus 5cm}\-I\-Embedding\-Engine\-::\-I\-Embedding\-Engine (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{classIEmbeddingEngine_adc2c704198f68e2d23a713f058122f34}
\hypertarget{classIEmbeddingEngine_a34cd1e82cd29a489109593e8f7ff3be4}{
\index{\-I\-Embedding\-Engine@{\-I\-Embedding\-Engine}!$\sim$\-I\-Embedding\-Engine@{$\sim$\-I\-Embedding\-Engine}}
\index{$\sim$\-I\-Embedding\-Engine@{$\sim$\-I\-Embedding\-Engine}!IEmbeddingEngine@{\-I\-Embedding\-Engine}}
\subsubsection[{$\sim$\-I\-Embedding\-Engine}]{\setlength{\rightskip}{0pt plus 5cm}virtual \-I\-Embedding\-Engine\-::$\sim$\-I\-Embedding\-Engine (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline, virtual\mbox{]}}}}
\label{classIEmbeddingEngine_a34cd1e82cd29a489109593e8f7ff3be4}
\hypertarget{classIEmbeddingEngine_ae4167c2ac833d919fe202f0ce72f6367}{
\index{\-I\-Embedding\-Engine@{\-I\-Embedding\-Engine}!\-I\-Embedding\-Engine@{\-I\-Embedding\-Engine}}
\index{\-I\-Embedding\-Engine@{\-I\-Embedding\-Engine}!IEmbeddingEngine@{\-I\-Embedding\-Engine}}
\subsubsection[{\-I\-Embedding\-Engine}]{\setlength{\rightskip}{0pt plus 5cm}\-I\-Embedding\-Engine\-::\-I\-Embedding\-Engine (
\begin{DoxyParamCaption}
\item[{const {\bf \-I\-Embedding\-Engine} \&}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classIEmbeddingEngine_ae4167c2ac833d919fe202f0ce72f6367}


\subsection{\-Member \-Function \-Documentation}
\hypertarget{classIEmbeddingEngine_acfc1adf5ae7e28332f825c6f2ae056d2}{
\index{\-I\-Embedding\-Engine@{\-I\-Embedding\-Engine}!change\-Settings@{change\-Settings}}
\index{change\-Settings@{change\-Settings}!IEmbeddingEngine@{\-I\-Embedding\-Engine}}
\subsubsection[{change\-Settings}]{\setlength{\rightskip}{0pt plus 5cm}virtual int \-I\-Embedding\-Engine\-::change\-Settings (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}pure virtual\mbox{]}}}}
\label{classIEmbeddingEngine_acfc1adf5ae7e28332f825c6f2ae056d2}
called by the protocol engine upon settings change (e.\-g. change of embedding parameters) 

\-Implemented in \hyperlink{classCCryptoEngine_ae509c020577b0be6b45f63a78304314f}{\-C\-Crypto\-Engine}, \hyperlink{classCFrequencyScrambling_a5b7467e7a2d40a1643186b7066c1fdb9}{\-C\-Frequency\-Scrambling}, \hyperlink{classCAdvAmplitudeScrambling_a3c8ebe9537d5b48b8fc84c9b7730e851}{\-C\-Adv\-Amplitude\-Scrambling}, \hyperlink{classCNullCryptoEngine_aeae9b7fbed7186ccd34a533ccd03f0e6}{\-C\-Null\-Crypto\-Engine}, \hyperlink{classCAmplitudeScrambling_aa2113755623a41093e74d8648069c94f}{\-C\-Amplitude\-Scrambling}, \hyperlink{classCDumpEmbeddingEngine_aeef339ae1eef5123296c82ecb41c86d9}{\-C\-Dump\-Embedding\-Engine}, \hyperlink{classCLSBEmbeddingEngine_aca6150436ba357982b39ab7a56e6b0b7}{\-C\-L\-S\-B\-Embedding\-Engine}, and \hyperlink{classCRandEmbeddingEngine_ad7153a1344e4fca0b855851e0c346596}{\-C\-Rand\-Embedding\-Engine}.

\hypertarget{classIEmbeddingEngine_a0d4c7dd4a9cef7524a016831042094fe}{
\index{\-I\-Embedding\-Engine@{\-I\-Embedding\-Engine}!embed\-Into\-Samples@{embed\-Into\-Samples}}
\index{embed\-Into\-Samples@{embed\-Into\-Samples}!IEmbeddingEngine@{\-I\-Embedding\-Engine}}
\subsubsection[{embed\-Into\-Samples}]{\setlength{\rightskip}{0pt plus 5cm}virtual int \-I\-Embedding\-Engine\-::embed\-Into\-Samples (
\begin{DoxyParamCaption}
\item[{int8\-\_\-t $\ast$}]{p\-Samples, }
\item[{unsigned int}]{p\-Count, }
\item[{unsigned int}]{p\-Leak}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}pure virtual\mbox{]}}}}
\label{classIEmbeddingEngine_a0d4c7dd4a9cef7524a016831042094fe}


hook call for glue code 

called by the voip phone application to embed data into the sample before sending a packet \begin{DoxyNote}{\-Note}
this implicitly reads the data to be embedded from the \hyperlink{classIStegIO}{\-I\-Steg\-I\-O}
\end{DoxyNote}

\begin{DoxyParams}{\-Parameters}
{\em p\-Samples} & samples to be modified \\
\hline
{\em p\-Count} & number of samples \\
\hline
{\em p\-Leak} & number of samples not used between last and current call\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{\-Returns}
$>$0 for success, 0 for \-E\-O\-F and $<$0 for an error 
\end{DoxyReturn}


\-Implemented in \hyperlink{classCDumpEmbeddingEngine_a198b502e3a71e21c7907961697772f9b}{\-C\-Dump\-Embedding\-Engine}, \hyperlink{classCCryptoEngine_afa42453df8be9a392303d70b4fdef7ce}{\-C\-Crypto\-Engine}, \hyperlink{classCLSBEmbeddingEngine_a4d508780f5f727e820baa98a5da1fa97}{\-C\-L\-S\-B\-Embedding\-Engine}, and \hyperlink{classCRandEmbeddingEngine_a54803d6a4f5d537ca5065271623ab4d5}{\-C\-Rand\-Embedding\-Engine}.

\hypertarget{classIEmbeddingEngine_a508ca9bd6283cd40250a3cbee9a79778}{
\index{\-I\-Embedding\-Engine@{\-I\-Embedding\-Engine}!embed\-Into\-Samples@{embed\-Into\-Samples}}
\index{embed\-Into\-Samples@{embed\-Into\-Samples}!IEmbeddingEngine@{\-I\-Embedding\-Engine}}
\subsubsection[{embed\-Into\-Samples}]{\setlength{\rightskip}{0pt plus 5cm}virtual int \-I\-Embedding\-Engine\-::embed\-Into\-Samples (
\begin{DoxyParamCaption}
\item[{uint8\-\_\-t $\ast$}]{p\-Samples, }
\item[{unsigned int}]{p\-Count, }
\item[{unsigned int}]{p\-Leak}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}pure virtual\mbox{]}}}}
\label{classIEmbeddingEngine_a508ca9bd6283cd40250a3cbee9a79778}


\-Implemented in \hyperlink{classCCryptoEngine_a56c0cce3de7d609dc7b9d02aedaf269c}{\-C\-Crypto\-Engine}, \hyperlink{classCDumpEmbeddingEngine_a35b0c811b3f2cda63759997e6176284d}{\-C\-Dump\-Embedding\-Engine}, \hyperlink{classCLSBEmbeddingEngine_ae132792ad4cf59e3a0b966f92fd4b43b}{\-C\-L\-S\-B\-Embedding\-Engine}, and \hyperlink{classCRandEmbeddingEngine_ad71f0b7abb7d3a4f00fbed8e9ae1330f}{\-C\-Rand\-Embedding\-Engine}.

\hypertarget{classIEmbeddingEngine_aab1d65b5129a308098acab5468e51e3f}{
\index{\-I\-Embedding\-Engine@{\-I\-Embedding\-Engine}!embed\-Into\-Samples@{embed\-Into\-Samples}}
\index{embed\-Into\-Samples@{embed\-Into\-Samples}!IEmbeddingEngine@{\-I\-Embedding\-Engine}}
\subsubsection[{embed\-Into\-Samples}]{\setlength{\rightskip}{0pt plus 5cm}virtual int \-I\-Embedding\-Engine\-::embed\-Into\-Samples (
\begin{DoxyParamCaption}
\item[{int16\-\_\-t $\ast$}]{p\-Samples, }
\item[{unsigned int}]{p\-Count, }
\item[{unsigned int}]{p\-Leak}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}pure virtual\mbox{]}}}}
\label{classIEmbeddingEngine_aab1d65b5129a308098acab5468e51e3f}


\-Implemented in \hyperlink{classCCryptoEngine_a4d593436533e1181ff78aee0e5a180cf}{\-C\-Crypto\-Engine}, \hyperlink{classCDumpEmbeddingEngine_a1c6a14a4f5ff80770cc6554ed96f995b}{\-C\-Dump\-Embedding\-Engine}, \hyperlink{classCLSBEmbeddingEngine_a53aafd5283ecaddd90c0763eeab89cf9}{\-C\-L\-S\-B\-Embedding\-Engine}, and \hyperlink{classCRandEmbeddingEngine_aac2dc51c8a5c42fb3b013fb265ea546b}{\-C\-Rand\-Embedding\-Engine}.

\hypertarget{classIEmbeddingEngine_a12b321a2caf8b08d4435e936bd7fa446}{
\index{\-I\-Embedding\-Engine@{\-I\-Embedding\-Engine}!embed\-Into\-Samples@{embed\-Into\-Samples}}
\index{embed\-Into\-Samples@{embed\-Into\-Samples}!IEmbeddingEngine@{\-I\-Embedding\-Engine}}
\subsubsection[{embed\-Into\-Samples}]{\setlength{\rightskip}{0pt plus 5cm}virtual int \-I\-Embedding\-Engine\-::embed\-Into\-Samples (
\begin{DoxyParamCaption}
\item[{uint16\-\_\-t $\ast$}]{p\-Samples, }
\item[{unsigned int}]{p\-Count, }
\item[{unsigned int}]{p\-Leak}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}pure virtual\mbox{]}}}}
\label{classIEmbeddingEngine_a12b321a2caf8b08d4435e936bd7fa446}


\-Implemented in \hyperlink{classCCryptoEngine_a77d0b14647029fe24da5cf9a98722420}{\-C\-Crypto\-Engine}, \hyperlink{classCDumpEmbeddingEngine_a387b9f36c456685b132461d26682d3c8}{\-C\-Dump\-Embedding\-Engine}, \hyperlink{classCLSBEmbeddingEngine_af6e8a395a148d9847721654e6540efe2}{\-C\-L\-S\-B\-Embedding\-Engine}, and \hyperlink{classCRandEmbeddingEngine_a1168da3c69053df590dc9f0c08c4f16d}{\-C\-Rand\-Embedding\-Engine}.

\hypertarget{classIEmbeddingEngine_aa778b0012f0b6d907c7284ce367d16ee}{
\index{\-I\-Embedding\-Engine@{\-I\-Embedding\-Engine}!embed\-Into\-Samples@{embed\-Into\-Samples}}
\index{embed\-Into\-Samples@{embed\-Into\-Samples}!IEmbeddingEngine@{\-I\-Embedding\-Engine}}
\subsubsection[{embed\-Into\-Samples}]{\setlength{\rightskip}{0pt plus 5cm}virtual int \-I\-Embedding\-Engine\-::embed\-Into\-Samples (
\begin{DoxyParamCaption}
\item[{double $\ast$}]{p\-Samples, }
\item[{unsigned int}]{p\-Count, }
\item[{unsigned int}]{p\-Leak}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}pure virtual\mbox{]}}}}
\label{classIEmbeddingEngine_aa778b0012f0b6d907c7284ce367d16ee}


\-Implemented in \hyperlink{classCCryptoEngine_ad7bd16eab935a6bb6394023a7d002a1c}{\-C\-Crypto\-Engine}, and \hyperlink{classCLSBEmbeddingEngine_a4108f20e47567007441ba8943f5e4b1b}{\-C\-L\-S\-B\-Embedding\-Engine}.

\hypertarget{classIEmbeddingEngine_afdd4eb903fce7b7ec14ed171c0df64d7}{
\index{\-I\-Embedding\-Engine@{\-I\-Embedding\-Engine}!extract\-From\-Samples@{extract\-From\-Samples}}
\index{extract\-From\-Samples@{extract\-From\-Samples}!IEmbeddingEngine@{\-I\-Embedding\-Engine}}
\subsubsection[{extract\-From\-Samples}]{\setlength{\rightskip}{0pt plus 5cm}virtual int \-I\-Embedding\-Engine\-::extract\-From\-Samples (
\begin{DoxyParamCaption}
\item[{int8\-\_\-t $\ast$}]{p\-Samples, }
\item[{unsigned int}]{p\-Count, }
\item[{unsigned int}]{p\-Leak, }
\item[{unsigned int}]{p\-In\-Buffer}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}pure virtual\mbox{]}}}}
\label{classIEmbeddingEngine_afdd4eb903fce7b7ec14ed171c0df64d7}


hook call for glue code 

called by the voip phone application to extract data from the sample after receiving a packet \begin{DoxyNote}{\-Note}
this implicitly writes the extracted data to the \hyperlink{classIStegIO}{\-I\-Steg\-I\-O}
\end{DoxyNote}

\begin{DoxyParams}{\-Parameters}
{\em p\-Samples} & samples to be modified \\
\hline
{\em p\-Count} & number of samples \\
\hline
{\em p\-Leak} & number of samples not used between last and current call \\
\hline
{\em p\-In\-Buffer} & how many samples are left in the buffer. \-If no extra thread is executed for extraction this parameter is always 0.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{\-Returns}
0 for success, $>$0 for success and discard of samples for next call, $<$0 for an error 
\end{DoxyReturn}


\-Implemented in \hyperlink{classCCryptoEngine_a987c8e885306c46278154850f9d08329}{\-C\-Crypto\-Engine}, \hyperlink{classCDumpEmbeddingEngine_af3fc1af5cec85b52f1166e6eeeecf918}{\-C\-Dump\-Embedding\-Engine}, \hyperlink{classCLSBEmbeddingEngine_acaebe471ecb2ca61fefa93c623effcee}{\-C\-L\-S\-B\-Embedding\-Engine}, and \hyperlink{classCRandEmbeddingEngine_ad2f2ad1c4af1efd19d7f9f324e5068b4}{\-C\-Rand\-Embedding\-Engine}.

\hypertarget{classIEmbeddingEngine_a952b08b4f543a8bdd3ca53e46c16b087}{
\index{\-I\-Embedding\-Engine@{\-I\-Embedding\-Engine}!extract\-From\-Samples@{extract\-From\-Samples}}
\index{extract\-From\-Samples@{extract\-From\-Samples}!IEmbeddingEngine@{\-I\-Embedding\-Engine}}
\subsubsection[{extract\-From\-Samples}]{\setlength{\rightskip}{0pt plus 5cm}virtual int \-I\-Embedding\-Engine\-::extract\-From\-Samples (
\begin{DoxyParamCaption}
\item[{uint8\-\_\-t $\ast$}]{p\-Samples, }
\item[{unsigned int}]{p\-Count, }
\item[{unsigned int}]{p\-Leak, }
\item[{unsigned int}]{p\-In\-Buffer}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}pure virtual\mbox{]}}}}
\label{classIEmbeddingEngine_a952b08b4f543a8bdd3ca53e46c16b087}


\-Implemented in \hyperlink{classCCryptoEngine_aedf491be2045c9e0eb328a7601aeb2b8}{\-C\-Crypto\-Engine}, \hyperlink{classCDumpEmbeddingEngine_a4518078ba33c8b225f2658b05b398201}{\-C\-Dump\-Embedding\-Engine}, \hyperlink{classCLSBEmbeddingEngine_a70d5c13e20918537ca5fc41e2b189174}{\-C\-L\-S\-B\-Embedding\-Engine}, and \hyperlink{classCRandEmbeddingEngine_a64761d9c4036823d4a38e8e054c7acd9}{\-C\-Rand\-Embedding\-Engine}.

\hypertarget{classIEmbeddingEngine_a476e58ee9839c3d29cf308b056d2b0d3}{
\index{\-I\-Embedding\-Engine@{\-I\-Embedding\-Engine}!extract\-From\-Samples@{extract\-From\-Samples}}
\index{extract\-From\-Samples@{extract\-From\-Samples}!IEmbeddingEngine@{\-I\-Embedding\-Engine}}
\subsubsection[{extract\-From\-Samples}]{\setlength{\rightskip}{0pt plus 5cm}virtual int \-I\-Embedding\-Engine\-::extract\-From\-Samples (
\begin{DoxyParamCaption}
\item[{int16\-\_\-t $\ast$}]{p\-Samples, }
\item[{unsigned int}]{p\-Count, }
\item[{unsigned int}]{p\-Leak, }
\item[{unsigned int}]{p\-In\-Buffer}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}pure virtual\mbox{]}}}}
\label{classIEmbeddingEngine_a476e58ee9839c3d29cf308b056d2b0d3}


\-Implemented in \hyperlink{classCCryptoEngine_af2c1e3584afe76a542d710ced83d429d}{\-C\-Crypto\-Engine}, \hyperlink{classCDumpEmbeddingEngine_a313caadd6577e4fb04b386b8bc5d9fc0}{\-C\-Dump\-Embedding\-Engine}, \hyperlink{classCLSBEmbeddingEngine_a08705592c817d8b2854d80752f594a34}{\-C\-L\-S\-B\-Embedding\-Engine}, and \hyperlink{classCRandEmbeddingEngine_a68c5bc5b00170e6ac949b5fb7b23321d}{\-C\-Rand\-Embedding\-Engine}.

\hypertarget{classIEmbeddingEngine_af077ceeacbe720f5b588950c4140a096}{
\index{\-I\-Embedding\-Engine@{\-I\-Embedding\-Engine}!extract\-From\-Samples@{extract\-From\-Samples}}
\index{extract\-From\-Samples@{extract\-From\-Samples}!IEmbeddingEngine@{\-I\-Embedding\-Engine}}
\subsubsection[{extract\-From\-Samples}]{\setlength{\rightskip}{0pt plus 5cm}virtual int \-I\-Embedding\-Engine\-::extract\-From\-Samples (
\begin{DoxyParamCaption}
\item[{uint16\-\_\-t $\ast$}]{p\-Samples, }
\item[{unsigned int}]{p\-Count, }
\item[{unsigned int}]{p\-Leak, }
\item[{unsigned int}]{p\-In\-Buffer}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}pure virtual\mbox{]}}}}
\label{classIEmbeddingEngine_af077ceeacbe720f5b588950c4140a096}


\-Implemented in \hyperlink{classCCryptoEngine_ac5923a7e5647d09aead6e2062fdca5d9}{\-C\-Crypto\-Engine}, \hyperlink{classCDumpEmbeddingEngine_a391b8f0784a29df9c3834f5cd4e6d51a}{\-C\-Dump\-Embedding\-Engine}, \hyperlink{classCLSBEmbeddingEngine_a4c62d1ed64e8acb27781d7765e4fa0eb}{\-C\-L\-S\-B\-Embedding\-Engine}, and \hyperlink{classCRandEmbeddingEngine_af0b434b1ee99a668bf715f3dde97dcbe}{\-C\-Rand\-Embedding\-Engine}.

\hypertarget{classIEmbeddingEngine_a5d7b877de16fb5e8479ce83f75b88ae1}{
\index{\-I\-Embedding\-Engine@{\-I\-Embedding\-Engine}!extract\-From\-Samples@{extract\-From\-Samples}}
\index{extract\-From\-Samples@{extract\-From\-Samples}!IEmbeddingEngine@{\-I\-Embedding\-Engine}}
\subsubsection[{extract\-From\-Samples}]{\setlength{\rightskip}{0pt plus 5cm}virtual int \-I\-Embedding\-Engine\-::extract\-From\-Samples (
\begin{DoxyParamCaption}
\item[{double $\ast$}]{p\-Samples, }
\item[{unsigned int}]{p\-Count, }
\item[{unsigned int}]{p\-Leak, }
\item[{unsigned int}]{p\-In\-Buffer}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}pure virtual\mbox{]}}}}
\label{classIEmbeddingEngine_a5d7b877de16fb5e8479ce83f75b88ae1}


\-Implemented in \hyperlink{classCCryptoEngine_a09d61a9930a53ca76c1b940afb1aff88}{\-C\-Crypto\-Engine}, and \hyperlink{classCLSBEmbeddingEngine_afd9e25289d4571a53e55ef0c8648eb09}{\-C\-L\-S\-B\-Embedding\-Engine}.

\hypertarget{classIEmbeddingEngine_a58c6fd3df13135b91956c42b2f3519a6}{
\index{\-I\-Embedding\-Engine@{\-I\-Embedding\-Engine}!get\-Ini\-Section\-Name@{get\-Ini\-Section\-Name}}
\index{get\-Ini\-Section\-Name@{get\-Ini\-Section\-Name}!IEmbeddingEngine@{\-I\-Embedding\-Engine}}
\subsubsection[{get\-Ini\-Section\-Name}]{\setlength{\rightskip}{0pt plus 5cm}virtual std\-::string \-I\-Embedding\-Engine\-::get\-Ini\-Section\-Name (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}pure virtual\mbox{]}}}}
\label{classIEmbeddingEngine_a58c6fd3df13135b91956c42b2f3519a6}


get the abbreviation for the properties reader 

\begin{DoxyReturn}{\-Returns}
the abbreviation for the properties reader 
\end{DoxyReturn}


\-Implemented in \hyperlink{classCCryptoEngine_a5fe78aa78cd14bbf52e8c897e128af49}{\-C\-Crypto\-Engine}, \hyperlink{classCDumpEmbeddingEngine_a0cb2379747fdf07f5468ec53394bc002}{\-C\-Dump\-Embedding\-Engine}, \hyperlink{classCRandEmbeddingEngine_a96e54e0cb255a0cc5715ad7199256c76}{\-C\-Rand\-Embedding\-Engine}, and \hyperlink{classCLSBEmbeddingEngine_a81bd5d82390a7870fefbfdde94cd474b}{\-C\-L\-S\-B\-Embedding\-Engine}.

\hypertarget{classIEmbeddingEngine_aaeb36f7905d85f9df65b7ba565419888}{
\index{\-I\-Embedding\-Engine@{\-I\-Embedding\-Engine}!get\-Num\-Required\-Samples@{get\-Num\-Required\-Samples}}
\index{get\-Num\-Required\-Samples@{get\-Num\-Required\-Samples}!IEmbeddingEngine@{\-I\-Embedding\-Engine}}
\subsubsection[{get\-Num\-Required\-Samples}]{\setlength{\rightskip}{0pt plus 5cm}virtual int \-I\-Embedding\-Engine\-::get\-Num\-Required\-Samples (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}pure virtual\mbox{]}}}}
\label{classIEmbeddingEngine_aaeb36f7905d85f9df65b7ba565419888}


determine number of processible samples 

called by the samples distributor to determine the number of samples which can be processed by the embedding engine; this can be a dynamic value or constant (e.\-g. for \-L\-S\-B, or echo-\/hiding) all the time

\begin{DoxyReturn}{\-Returns}
the number of processible samples 
\end{DoxyReturn}


\-Implemented in \hyperlink{classCCryptoEngine_abe276f3773c39536ba0ce3c3e3185268}{\-C\-Crypto\-Engine}, and \hyperlink{classCLSBEmbeddingEngine_a2e474f9ad7431541adc5d810e9d800ff}{\-C\-L\-S\-B\-Embedding\-Engine}.

\hypertarget{classIEmbeddingEngine_a72cad808a0f21ab863dd3e4eda653374}{
\index{\-I\-Embedding\-Engine@{\-I\-Embedding\-Engine}!get\-Properties\-Reader@{get\-Properties\-Reader}}
\index{get\-Properties\-Reader@{get\-Properties\-Reader}!IEmbeddingEngine@{\-I\-Embedding\-Engine}}
\subsubsection[{get\-Properties\-Reader}]{\setlength{\rightskip}{0pt plus 5cm}{\bf \-C\-Properties\-Reader} $\ast$ \-I\-Embedding\-Engine\-::get\-Properties\-Reader (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classIEmbeddingEngine_a72cad808a0f21ab863dd3e4eda653374}
get the \-C\-Properties\-Reader which is used to handle config files for this embedding engine

\begin{DoxyReturn}{\-Returns}
the corresponding \-C\-Properties\-Reader 
\end{DoxyReturn}
\hypertarget{classIEmbeddingEngine_af1afa2bc32d63b5505a27da584c4a474}{
\index{\-I\-Embedding\-Engine@{\-I\-Embedding\-Engine}!get\-Samples\-Format@{get\-Samples\-Format}}
\index{get\-Samples\-Format@{get\-Samples\-Format}!IEmbeddingEngine@{\-I\-Embedding\-Engine}}
\subsubsection[{get\-Samples\-Format}]{\setlength{\rightskip}{0pt plus 5cm}virtual {\bf \-N\-Audio\-Formats\-::\-E\-Samples\-Format} \-I\-Embedding\-Engine\-::get\-Samples\-Format (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}pure virtual\mbox{]}}}}
\label{classIEmbeddingEngine_af1afa2bc32d63b5505a27da584c4a474}


determine whether samples should be converted to double before handed over to an embedding engine 

\begin{DoxyReturn}{\-Returns}
\-O\-R\-I\-G\-I\-N\-A\-L or \-M\-O\-D\-I\-F\-I\-E\-D 
\end{DoxyReturn}


\-Implemented in \hyperlink{classCCryptoEngine_a0b8e86c1fa977f571de690f268fa4087}{\-C\-Crypto\-Engine}, and \hyperlink{classCLSBEmbeddingEngine_a882686345156024eea079420bc780345}{\-C\-L\-S\-B\-Embedding\-Engine}.

\hypertarget{classIEmbeddingEngine_ab1a0ad555daf0b82027ef6c3aba980d9}{
\index{\-I\-Embedding\-Engine@{\-I\-Embedding\-Engine}!operator=@{operator=}}
\index{operator=@{operator=}!IEmbeddingEngine@{\-I\-Embedding\-Engine}}
\subsubsection[{operator=}]{\setlength{\rightskip}{0pt plus 5cm}{\bf \-I\-Embedding\-Engine}\& \-I\-Embedding\-Engine\-::operator= (
\begin{DoxyParamCaption}
\item[{const {\bf \-I\-Embedding\-Engine} \&}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classIEmbeddingEngine_ab1a0ad555daf0b82027ef6c3aba980d9}
\hypertarget{classIEmbeddingEngine_abfb86e00c511112aec0cfa1acfb571c8}{
\index{\-I\-Embedding\-Engine@{\-I\-Embedding\-Engine}!set\-Properties\-Reader@{set\-Properties\-Reader}}
\index{set\-Properties\-Reader@{set\-Properties\-Reader}!IEmbeddingEngine@{\-I\-Embedding\-Engine}}
\subsubsection[{set\-Properties\-Reader}]{\setlength{\rightskip}{0pt plus 5cm}void \-I\-Embedding\-Engine\-::set\-Properties\-Reader (
\begin{DoxyParamCaption}
\item[{{\bf \-C\-Properties\-Reader} $\ast$}]{p\-Properties\-Reader}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classIEmbeddingEngine_abfb86e00c511112aec0cfa1acfb571c8}
pass a reference to a \-Properties\-Reader object to this embedding engine for handling config files


\begin{DoxyParams}{\-Parameters}
{\em p\-Properties\-Reader} & pointer to a \-Properties\-Reader object instanciated by the \-Engine\-Factory \\
\hline
\end{DoxyParams}
\hypertarget{classIEmbeddingEngine_a17d63e5e13b91c9121444833cf5de626}{
\index{\-I\-Embedding\-Engine@{\-I\-Embedding\-Engine}!shutdown@{shutdown}}
\index{shutdown@{shutdown}!IEmbeddingEngine@{\-I\-Embedding\-Engine}}
\subsubsection[{shutdown}]{\setlength{\rightskip}{0pt plus 5cm}virtual void \-I\-Embedding\-Engine\-::shutdown (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}pure virtual\mbox{]}}}}
\label{classIEmbeddingEngine_a17d63e5e13b91c9121444833cf5de626}
called from the engine factory before destroying the handle 

\-Implemented in \hyperlink{classCCryptoEngine_a3e15dd4a337b2b5d1d74cc4b0f923cef}{\-C\-Crypto\-Engine}, and \hyperlink{classCLSBEmbeddingEngine_a0890214dd225aa09ba755459d686c2ce}{\-C\-L\-S\-B\-Embedding\-Engine}.



\subsection{\-Member \-Data \-Documentation}
\hypertarget{classIEmbeddingEngine_a7da6f0fa30423edc18aa7beafa47801a}{
\index{\-I\-Embedding\-Engine@{\-I\-Embedding\-Engine}!m\-Properties\-Reader@{m\-Properties\-Reader}}
\index{m\-Properties\-Reader@{m\-Properties\-Reader}!IEmbeddingEngine@{\-I\-Embedding\-Engine}}
\subsubsection[{m\-Properties\-Reader}]{\setlength{\rightskip}{0pt plus 5cm}{\bf \-C\-Properties\-Reader}$\ast$ {\bf \-I\-Embedding\-Engine\-::m\-Properties\-Reader}\hspace{0.3cm}{\ttfamily  \mbox{[}protected\mbox{]}}}}
\label{classIEmbeddingEngine_a7da6f0fa30423edc18aa7beafa47801a}
link to the \-Properties\-Reader object and hence to the config file 

\-The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize}
\item 
\hyperlink{embedding__engine_8h}{embedding\-\_\-engine.\-h}\item 
\hyperlink{embedding__engine_8cxx}{embedding\-\_\-engine.\-cxx}\end{DoxyCompactItemize}
